esDivisiblePorAlgunoMenor :: Int -> Int -> Bool
esDivisiblePorAlgunoMenor a 1 = False
esDivisiblePorAlgunoMenor a b = (a `mod` b == 0) || esDivisiblePorAlgunoMenor a (b-1)

esPrimo :: Int -> Bool
esPrimo 1 = False
esPrimo 2 = True
esPrimo n = not (esDivisiblePorAlgunoMenor n (n-1))

-- take 1000 [x | x <- [1..], esPrimo x]

